In a robot, the position and speed of a part to be driven by a servo-motor (hereinafter, also referred to as “motor”) are controlled. Consequently, normally, position feedback control, speed feedback control and furthermore current feedback control are executed. These controls are executed until the position and speed of the driven part match the commanded position and the commanded speed.
Even if the position feedback control, speed feedback control and furthermore current feedback control are executed, when a robot is operated at high-speed, a trajectory error and a position vibration component may be produced. Also, in high-speed operation, the dynamic characteristics of the motor and the dynamic characteristics of the arm are different. Consequently, it is not possible to measure the trajectory error and position vibration component of the arm directly using a motor encoder which is provided near the motor for driving the arm. Therefore, it is necessary to mount a sensor directly on the arm in order to measure the trajectory error and position vibration component. It is known that learning control is executed using an acceleration sensor for such a sensor (see Patent Document 1).
FIG. 1 is a schematic diagram showing a robot having a learning control filter to carry out learning control. A robot 1000 is configured with a robot mechanism unit 1 and a control unit 2 that controls the robot mechanism unit 1. The control unit 2 includes a learning control unit 3 that carries out learning control for the robot, and a normal control unit 4 that directly drives the robot mechanism unit 1.
In the robot mechanism unit 1, an acceleration sensor 10, an arm 11, an arm forward end portion 12 (hereinafter also referred to as “gun”), and a motor (not shown) are provided. The normal control unit 4 included in the control unit 2 drives the arm 11 and moves the arm forward end portion 12 to a desired position, by inputting signals in the motor of the robot mechanism unit 1, and carries out tasks such as welding, for example. The acceleration sensor 10 is installed in the arm forward end portion 12, and therefore can acquire spatial position data (yj(k)) of the arm forward end portion 12. The position data (yj(k)) obtained from the acceleration sensor 10 is input to the learning control unit 3 and used for learning control. The symbol “j” of “yj(k)” designates the number of tries, the symbol “k” of “yj(k)” designates time, and the symbol “Ns” of a delay circuit 361 in FIG. 1 designates the number of the times sampling is made in each one trial. “yd(k)” designates position command data, and “yj(k)” designates the amount subjected to control at a previous trial. “ej(k)” designates the target correction amount calculated from yd(k) and (yj(k)) through a filter, and “uj(k)” designates learning correction amount at a previous trial.
In the normal control unit 4, a position control unit 41, a speed control unit 42, a current control unit 43, an amplifier 44 and a differentiation means 45 are provided. The position control unit 41 receives position command data (yd(k)) that is input from outside the control unit 2. The position control unit 41 furthermore receives position information of, for example, the motor position of the robot mechanism unit 1, and outputs desired position information for the arm forward end portion 12 of the robot mechanism unit 1, to the speed control unit 42. The differentiation means 45 receives the motor position information that is fed back from the robot mechanism unit 1, calculates the motor speed, and outputs this motor speed to the speed control unit 42.
The speed control unit 42 calculates the desired motor speed taking into account the position information from the position control unit 41 and the motor speed information from the differentiation means 45, and outputs this desired motor speed to the current control unit 43. The current control unit 43 receives the current value that is fed back from the amplifier 44. Furthermore, the current control unit 43 calculates the current to flow in the motor to achieve the desired motor speed input from the speed control unit 42, and outputs the resulting current to the amplifier 44. The amplifier 44 calculates the desired power based on the current value from the current control unit 43, and applies this to the motor (not shown) of the robot mechanism unit 1.
In the learning control unit 3, a first memory 31, a learning control filter L(q) 32, a low-pass filter Q(q) 33, a second memory 34, a delay circuit 361 and a third memory 362 are provided. The first memory 31 receives target correction amount ej(k) calculated from the position command data (yd(k)) for the arm forward end portion 12 and the position data (yj(k)) measured by the acceleration sensor 10 through a filter. The first memory 31 stores the target correction amount ej(k) received as input, and also outputs the target correction amount ej(k) to the learning control filter L(q) 32. The target correction amount ej(k) corresponds to the trajectory/vibration errors against the desired position of the arm forward end portion 12.
By executing the task program stored in the learning control filter L(q) 32, the learning control filter L(q) 32 calculates a learning correction amount uj+1(k), from the target correction amount ej(k) and uj(k), and outputs this learning correction amount uj+1(k) to the low-pass filter Q(q) 33. The learning correction amount uj+1(k) that is input to the low-pass filter Q(q) 33 is output to the second memory 34 and stored in the second memory 34. The learning correction amount uj+1(k) is added to position error data that is calculated in the position control unit 41 of the normal control unit 4.
Based on the corrected position error data, the robot mechanism unit 1 is controlled, and learning control is repeated. In the learning control, this series of processes are repeatedly executed so that the position error converges to “0”. After the operation for calculating the learning correction amount by learning control is finished, i.e., after the learning operation is finished, the loop for updating the learning correction amount, which is indicated by dotted lines in FIG. 1, is not executed. Instead, the learning correction amount uj+1(k) is output from the second memory 34 to the position control unit 41. The solid line parts and dotted line parts in FIG. 1, which represent signal flows, will be explained. The solid line parts represent parts which the normal control unit 4 implements to operate the robot mechanism unit 1. On the other hand, the dotted line parts represent parts which the learning control unit 3 implements in a state of the learning operation. The dotted lines represent parts which are implemented after the operation of the robot mechanism unit 1 by the normal control unit 4 is finished.
As examples of robot application, a robot for spot welding has been reported (see, for example, Patent Documents 2 and 3). Also, an example of a robot with a vision sensor detecting position of an object and perform spot welding by the robot is disclosed (see, for example, Patent Document 4).    Patent Document 1: Japanese Patent Application Publication No. 2006-172149    Patent Document 2: Japanese Patent Application Publication No. 2007-268590    Patent Document 3: Japanese Patent Application Publication No. 2007-7666    Patent Document 4: Japanese Patent Application Publication No. 2005-138223
Conventional learning control focuses on improvement of trajectory/vibration errors under certain conditions. However, there is a problem, with conventional learning control, that the range of application is narrow and usability is given not much thought.
The aforementioned conventional technique described above as an example of learning control using a sensor is an example of a machine tool and yet assumes the use of an acceleration sensor for the sensor. In the case an acceleration sensor is mounted on a robot, although the trajectory/position errors can be extracted in orthogonal coordinates, there is still a problem that, in this condition, it is not possible to calculate the trajectory/position errors on each axis directly from the sensor data.
Also, according to the conventional technique described above, a normal high-pass filter is used to extract the trajectory/vibration errors from the acceleration sensor. With machine tools, the frequency band for feedback control is as high as several tens of Hz to several hundred Hz. That is to say, feedback control has very high performance in this frequency band. Consequently, no serious problem is posed even in the case where learning control using data of not more than 10 [Hz] is not possible, and offset is not a significant problem. On the other hand, with industrial robots, the frequency band for feedback control is normally several [Hz], and frequency bands higher than this are subject to feed forward control. As a result of this, the performance is liable to depend on the model error, and therefore this part is corrected by learning control. For example, in the case where a high-pass filter of 1 [Hz] is used to remove the offset of acceleration sensor data, the phase of the trajectory/vibration errors up to about 10 [Hz] rotates. Consequently, the trajectory/vibration error data of frequency bands to be removed is also processed, posing a problem that learning control performance is deteriorated.
Furthermore, there are two difficult problems in adjusting a learning control filter. One is the condition of convergence. The condition of convergence refers to the guarantee that repeating learning will always leads to convergence. Unless this is guaranteed, every learning leads only to divergence and this eventually damages the operation. The second is the condition of monotonic decrease. This is a condition to guarantee that the trajectory/vibration errors decrease every time learning is executed. Unless this is guaranteed, there is a possibility that convergence is reached only after the trajectory/vibration errors increase significantly over the course toward convergence. This then results in a possibility that the trajectory drifts significantly and vibration is produced in the course of learning, causing damage to the peripheral devices. Adjustment for meeting these two conditions is in fact mostly made by trial and error in most work fields. Also, given that the robot system changes in accordance with the posture, robustness also has to be taken into account. Learning control filters have become too complex taking into account these factors, and are therefore very difficult to implement. Furthermore, the calculation in the course of design is too complex. Consequently, in reality, no controllers to fulfill these conditions are used for industrial robots. There are examples of usage for machine tools, adjustments are in reality made based on experience per application. At present, an industrial robot having a learning function to design parameters and increase speed to cope with such problems, is still unavailable.
Furthermore, the conventional, general spot welding robots disclosed in Patent Documents 2 and 3 simply perform spot welding by performing operations that are stored in advance. Consequently, there is a problem that optimal robot operations are blocked by trajectory error and vibration components that are produced by high-speed robot operations. Patent Document 4 discloses an example of detecting an object by a vision sensor and correcting the operation of a robot. With this example, it is not possible to optimize the operation of a robot itself that moves toward an object. As a result, as described above, trajectory errors and vibration components are produced, and these become factors to lower the speed of robot operations.
It is therefore an object of the present invention to provide a robot and spot welding robot with learning control functions, that, in a spot welding application in which productivity relies upon robot operations, detect the position of a part that is subject to position control and control this to approach closer to a target operation.
It is also an object of the present invention to provide a robot and spot welding robot that make it possible to improve productivity and reduce cost by increasing the speed of robot operation.
It is also an object of the present invention to provide a robot and spot welding robot that can reduce the system cost by reducing the number of robots required to perform tasks, reducing the line space, and reducing the steps to perform.
It is also an object of the present invention to provide a robot and spot welding robot that can solve the problem of offset with acceleration sensors, without risking deterioration of performance.
It is also an object of the present invention to provide a robot and a spot welding robot that can automatically increase the speed of operation during learning.
It is also an object of the present invention to provide a robot and spot welding robot that can reduce the vibration of the spot welding robot and realize fast operation.